<?php
class LogAction extends RestModel
{
	/**
	* @return Log
	*/
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

	function restBaseUrl() { return BASE_DOMAIN . '/userAction/createApi'; }
	
	/**
	 * @inheritdoc
	 */
	 
	public function attributeNames()
	{
		return array(
			'action_type_id',
			'created_by',
			'ip_address',
			'user_agent',
			'url',
			'message',
		);
	}

	/**
	* @inheritdoc
	*
	*/
	public function callers()
	{
		return CMap::mergeArray(parent::callers(), array(
			// Hàm ghi log hành động của người dùng
			'addLogUserAction'=>array(
				'class'=>'RESTCaller',
				'url'=>LOG_DOMAIN . '/userAction/createApi',
				'httpUsername'=>LOG_API_HTTP_USR,
				'httpPassword'=>LOG_API_HTTP_PWD,
				'rsaPrivateKey'=>LOG_API_RSA_PRIVATE_KEY,

				'logModelClass'=>'CoreRestApiLog',
				'logRequest'=>true,
			),
			// Hàm ghi log hành động của admin
			'addLogAdminAction'=>array(
				'class'=>'RESTCaller',
				'url'=>LOG_DOMAIN . '/userAction/createApi',
				'httpUsername'=>LOG_API_HTTP_USR,
				'httpPassword'=>LOG_API_HTTP_PWD,
				'rsaPrivateKey'=>LOG_API_RSA_PRIVATE_KEY,

				'logModelClass'=>'CoreRestApiLog',
				'logRequest'=>true,
			),
		));
	}


	/*	
	* Hàm gọi API ghi log hành động của người dùng
	*/
	public function addLogUserAction($action_type_id=1, $created_by, $url=null, $message=null,$ip=null)
	{
		$restCaller = $this->getCaller('addLogUserAction');
		
		$data = $restCaller->post(array(
			'action_type_id' => $action_type_id,
			'created_by' => $created_by,
			'ip_address' => ($ip==null)? $_SERVER['SERVER_ADDR'] : $ip,
			'user_agent' => $_SERVER['HTTP_USER_AGENT'],
			'url' => $url,
			'message' => $message,
		));

		$code = $restCaller->getCode();
		if ($code == 200) return $data;
		if($code == 450) return false;

		return null;
	}
	
	/*	
	* Hàm ghi log hành động của quản trị
	*/
	public function addLogAdminAction($action_type_id=2, $created_by, $url=null, $message=null,$ip=null)
	{
		$restCaller = $this->getCaller('addLogAdminAction');
		
		$data = $restCaller->post(array(
			'action_type_id' => $action_type_id,
			'created_by' => $created_by,
			'ip_address' => ($ip==null)? $_SERVER['SERVER_ADDR'] : $ip,
			'user_agent' => $_SERVER['HTTP_USER_AGENT'],
			'url' => $url,
			'message' => $message,
		));

		$code = $restCaller->getCode();
		if ($code == 200) return $data;
		if($code == 450) return false;

		return null;
	}
}
